package net.bwie.jtp.ads.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher;

import java.util.HashMap;
import java.util.Map;
public class ParseIpToRegion extends UDF {
    public Map<String, String> evaluate(String ipStr) throws Exception{
        // 定义集合
        Map<String, String> map = new HashMap<>();
        // 1.DbSearcher对象
        DbSearcher dbSearcher = new DbSearcher(
                new DbConfig(),
//                "D:\\workspace\\ZhuanGaoEr_2209A\\project-zg6-2211B\\jtp-ads-warehouse\\src\\main\\resources\\ip2region.db"
                "/home/bwie/ip2region.db"

        );
        // 2.查找
        String region = dbSearcher.binarySearch(ipStr).getRegion();
        // 3.解析
        String[] split = region.split("\\|");
        map.put("country", split[0]);
        map.put("area", split[1]);
        map.put("province", split[2]);
        map.put("city", split[3]);
        map.put("isp", split[4]);

        return map;
    }
    public static void main(String[] args) throws Exception{
//        System.out.println(new ParseIpToRegion().evaluate("202.134.217.224"));
//        System.out.println(111);
        ParseIpToRegion parseIpToRegion = new ParseIpToRegion();
        System.out.println(parseIpToRegion.evaluate("202.134.217.224"));
    }
}